Freemarker 基本数据类型

您所在的位置:网站首页 freemarker 数组操作 Freemarker 基本数据类型

Freemarker 基本数据类型

2023-08-05 00:17| 来源: 网络整理| 查看: 265

一 数据类型简介

      freemarker 模板中的数据类型由如下几种:

         1. 布尔型:等价于java中的boolean类型, 不同的是不能直接输出,可以转换成字符串再输出

         2. 日期型:等价于java中的Date类型, 不同之处在于不能直接输出,需要转换成字符串再输出

         3. 数值型:等价于java 中的int, float, double 等数值类型,有三种显示形式:数值型(默认) 、货币型、百分比型

         4. 字符串型:等价于java 中的字符串,有很多内置函数

         5. sequence 类型:等价于java中的数组,list,set 等集合类型

         6. hash 类型:等价于java 中的Map 类型

 

二、 数据类型示例

【1. 布尔型】:     1. 不能直接输出布尔型的值, 必须转换为string:${b?string}     2. 在if标签中可以直接使用                      b 的值为 true         

【2. 日期型】     1. 输出日期:${currentDate?date}     2. 只输出时间:${currentDate?time}     3. 输出日期时间:${currentDate?datetime}     4. 格式化日期: ${currentDate?string('yyyy-MM-dd HH:mm:ss:S')}

【3. 数值型】:     2.1 Freemarker 中预定义了三种数字格式,货币,百分比,数字,默认为数字格式         货币::${0.3?string.currency}         百分比:${0.3?string.percent}         数字(默认):${0.3?string.number}          2.2 取整         1. 向上取整             3.4     --> ${3.4?ceiling}

            3.5     --> ${3.5?ceiling}

 

        2. 向下取整             3.4     --> ${3.4?floor}

            3.5     --> ${3.5?floor}

 

        3. 四舍五入             3.4     --> ${3.4?round}

            3.5     --> ${3.5?round}

 

    2.3 数字格式化, 使用0 表示不够 由0 补齐, 用# 表示不够不补齐         1. 保留两位小数: 必须两位,不够补0, 当前一位为偶数时,五舍六入, 当前一位为基数时,四舍五入             0.135   -- > ${0.135?string('.00')}             0.125   -- > ${0.125?string('.00')}             0.1     -- > ${0.1?string('.00')}                      2. 保留两位小数: 最多两位,不够不补0, 当前一位为偶数时,五舍六入, 当前一位为基数时,四舍五入             0.135   -- > ${0.135?string('#.##')}             0.125   -- > ${0.125?string('#.##')}             0.1     -- > ${0.1?string('#.##')}                      3. 格式化整数, 用0 表示必须三位整数,不够由0 补齐             12.1   -- > ${12.1?string('000.00')}             12.125 -- > ${12.125?string('000.00')}             12.135 -- > ${12.135?string('000.00')}                      4. 格式化整数, 用0 表示必须三位整数,不够由0 补齐, 一个# 和 多个# 是一样的             12.1   -- > ${12.1?string('#.00')}             12.125 -- > ${12.125?string('#.00')}

            12.135 -- > ${12.135?string('#.00')}

 

        5. 千位分割             123456789 --> ${123456789?string(',###')}

            123456789 --> ${123456789?string(',####')}

 

    2.4 数字转换成字符串:             数字转换成字符串后,就可以直接用字符串的内置函数了             1234     -- > ${123?string}             1234    -- > ${123?string[0]}             【4. 字符串型】     4.1  截取字符串subString(start,end):"hello,wold"         1. 截取6~end: ${"hello,wold"?substring(6)}         2. 截取0~5: ${"Hello,World"?substring(0,5)}          4.2  字母大小写转换         1. 首个单词的首字母大写: ${"hello world"?cap_first}         2. 首个单词的首个字母母小写: ${"Hello World"?uncap_first}         3. 所有单词首字母大写:${"hello world"?capitalize}         4. 字符串大写: ${"hello,world"?upper_case}         5. 字符串小写:${"hello,world"?lower_case}              4.3 判断是否以xxx 结尾         1. ${"hello,world"?ends_with("world")?string}             2.              hello,world 以字符串 world 结尾                            4.4 判断是否以xxx 开头         1. ${"hello,world"?starts_with("hello")?string}             2.              hello,world 以字符串 hello 开头                            4.5  返回字符串长度         ${"hello,world"?length}          4.6 是否包含子串         1. 返回为布尔值,布尔值不能直接输出,必须转换为string             ${"hello,world"?contains("llo")?string};         2.                 "hello,world" 包含子串 "llo"                            4.7 去除首尾空格         字符串:${"   hello,world   "?trim}              4.8 替换字符串         ${"hello,world"?replace("o","0")}          4.9 查询字符串第一次出现的索引位置,如果不存在返回0         ${"hello,world"?index_of("o")}         ${"hello,world"?index_of("aaa")}          4.10  字符串分割数组                               ${city_index} --> ${city}

        

 

    4.11 输出单个字母         ${"hello"[0]}     

【5. sequence】

    1. 获取第一个元素:sequence?first            array: ${cityArray?first}            list: ${cityList?first}            set: ${citySet?first}                   2. 获取最后一个元素:sequence?last            array: ${cityArray?last}            list: ${cityList?last}            set: ${citySet?last}                    3. 返回sequence 的大小sequence?size            array: ${cityArray?size}            list: ${cityList?size}            set: ${citySet?size}                    4. 排序:sequence?sort            4.1 sequence 元素为基本元素时(能转换为String的元素,非sequence 和  hash 元素)                array:sort,reverse                        正    序:${city},                        倒    序:${city},                        升    序:${city},                        降    序:${city},                list:sort,reverse                        正    序:${city},                        倒    序:${city},                        升    序:${city},                        降    序:${city},                set:sort,reverse                        正    序:${city},                        倒    序:${city},                        升    序:${city},

                       降    序:${city},

 

           4.2 sequence 元素为JavaBean时                正    序:                                         ${employee_index} --> ${employee.name} --> ${employee.age}  --> ${employee.sex}                              逆    序:                                         ${employee_index} --> ${employee.name} --> ${employee.age}  --> ${employee.sex}                                 按name属性升序:                                         ${employee_index} --> ${employee.name} --> ${employee.age}  --> ${employee.sex}                              按name属性降序:                                      ${employee_index} --> ${employee.name} --> ${employee.age}  --> ${employee.sex}                                     5. 遍历sequence, 包含索引值            array:                            ${city_index} --> ${city}                                list:                            ${city_index} --> ${city}                                set:                            ${city_index} --> ${city}

                   

 

       6. 根据索引获取sequence 元素            array: ${cityArray[0]}            list: ${cityList[0]}            set:  ${citySet[0]}

【6. map 类型】

    1. map长度:${cityMap?size};

 

    2. map的keys:cityMap.keys 返回的是一个sequence,类似于数组,所以不能直接输出,需要遍历                               ${mapKey}

        

 

    3. map的values: cityMap.values 返回的是一个sequence,类似于数组,所以不能直接输出,需要遍历                               ${mapValue}

        

 

    4. 遍历map 元素: map 通过key获取value的方法用[]                      ${key_index} --> ${key} --> ${cityMap[key]}              【7. JavaBean 类型】     1. 获取属性:${department.id} --> ${department.name}     2. 级联属性:${department.employees[0].name} --> ${department.employees[0].age} --> ${department.employees[0].sex}     3. 遍历数组:                              ${employee_index} --> ${employee.name} --> ${employee.age}  --> ${employee.sex}                  4. 排序                      ${employee_index} --> ${employee.name} --> ${employee.age}  --> ${employee.sex}         



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3